home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / x68000.arc / SOURCE.ARC / OPERATIO.DEF < prev    next >
Text File  |  1985-12-03  |  3KB  |  60 lines

  1. DEFINITION MODULE OperationCodes;
  2. (* Initializes lookup table for Mnemonic OpCodes.  Searches the table *)
  3. (* and returns the bit pattern along with address mode information.   *)
  4.  
  5.    FROM Parser IMPORT
  6.       TOKEN;
  7.  
  8.  
  9.    EXPORT QUALIFIED
  10.       ModeTypeA, ModeTypeB, ModeA, ModeB, Instructions;
  11.  
  12.  
  13.    TYPE
  14.       ModeTypeA = (RegMem3,      (* 0 = Register, 1 = Memory *)
  15.                    Ry02,         (* Register Rx -- Bits 0-2 *)
  16.                    Rx911,        (* Register Ry -- Bits 9-11 *)
  17.                    Data911,      (* Immediate Data -- Bits 9-11 *)
  18.                    CntR911,      (* Count Register or Immediate Data *)
  19.                    Brnch,        (* Relative Branch *)
  20.                    DecBr,        (* Decrement and Branch *)
  21.                    Data03,       (* Used for VECT only *)
  22.                    Data07,       (* Branch & MOVEQ *)
  23.                    OpM68D,       (* Data *)
  24.                    OpM68A,       (* Address *)
  25.                    OpM68C,       (* Compare *)
  26.                    OpM68X,       (* XOR *)
  27.                    OpM68S,       (* Sign Extension *)
  28.                    OpM68R,       (* Register/Memory *)    
  29.                    OpM37);       (* Exchange Registers *)
  30.                    
  31.       ModeTypeB = (Bit811,       (* BIT operations - bits 8/11 as switch *)
  32.                    Size67,       (* 00 = Byte, 01 = Word, 10 = Long *)
  33.                    Size6,        (* 0 = Word, 1 = Long *)
  34.                    Size1213A,    (* 01 = Byte, 11 = Word, 10 = Long *)
  35.                    Size1213,     (* 11 = Word, 10 = Long *)
  36.                    Exten,        (* OpCode extension required *)
  37.                    EA05a,        (* Effective Address - ALL *)
  38.                    EA05b,        (* Less 1 *)
  39.                    EA05c,        (* Less 1, 11 *)
  40.                    EA05d,        (* Less 9, 10, 11 *)
  41.                    EA05e,        (* Less 1, 9, 10, 11 *)
  42.                    EA05f,        (* Less 0, 1, 3, 4, 11 *)
  43.                    EA05x,        (* Dual mode - OR/AND *)
  44.                    EA05y,        (* Dual mode - ADD/SUB *)
  45.                    EA05z,        (* Dual mode - MOVEM *)
  46.                    EA611);       (* Used only by MOVE *)
  47.                    
  48.       ModeA = SET OF ModeTypeA;
  49.       ModeB = SET OF ModeTypeB;
  50.  
  51.  
  52.    
  53.    PROCEDURE Instructions (MnemonSym : TOKEN; 
  54.                            OpLoc : CARDINAL; VAR Op : BITSET; 
  55.                            VAR AddrModeA : ModeA; VAR AddrModeB : ModeB);
  56.    (* Uses lookup table to find addressing mode & bit pattern of opcode. *)
  57.  
  58. END OperationCodes.
  59.  
  60.